package cn.org.itool.common.utils;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 自定义表达式 and 用,隔开 or 用 || 分隔  如： server1, GameMainScene||admin, GameMainScene
 * 注: 如果使用 and 则默认有包含关系，及 server1 包含 GameMainScene
 * 现有包含关系如下定义
 * 空间 包含 分服; 分服 包含地图
 * 空间 包含
 */
public class TagUtil {
    public static List<List<String>> parse(String expression) {
        TagParserUtil.Parser parser = new TagParserUtil.Parser(expression);
        return parser.parse();
    }

    public static Set<String> getUniqueTags(String expression) {
        List<List<String>> parsedExpression = parse(expression);
        Set<String> uniqueTags = new HashSet<>();
        for (List<String> andExpressions : parsedExpression) {
            uniqueTags.addAll(andExpressions);
        }
        return uniqueTags;
    }
}
